package cn.fl.riskctrl.ysdb.transform;

import cn.cmm.base.framework.utils.CollectionUtils;
import cn.fl.riskctrl.ysdb.vo.YsejdCpwsVO;
import cn.fl.riskctrl.ysdb.vo.YsejdEntryDVO;
import fl.riskctrl.facade.ysdb.dto.YsejdEntryDDTO;

import java.util.ArrayList;
import java.util.Date;
import java.util.List;

/**
* @Description: 元素企业司法数据-被查询企业详细信息列表 转换器
* @Description: VO是客户端传递数据到服务端进行转换的数据
* @Description: VO转换数据变成DTO传递到服务端
* @Description: VO不能在服务端出现
*/
public class YsejdCpwsVOTransform {
    /**
     * DTO 转  VO
     * @param dto YsejdEntryDDTO
     * @return YsejdEntryDVO
     */
    public static YsejdCpwsVO baseToVO(YsejdEntryDDTO dto) {
        YsejdCpwsVO  vo = null;
        if (dto != null) {
            vo = new YsejdCpwsVO();
            vo.setId(dto.getId());
            vo.setYsejdEnteyListId(dto.getYsejdEnteyListId());//企业信息列表ID
            vo.setEntryId(dto.getEntryId());//详情ID
            vo.setResponseCode(dto.getResponseCode());//返回响应代码
            vo.setResponseMsg(dto.getResponseMsg());//返回响应代码说明
            vo.setDataType(dto.getDataType());//数据类型
            vo.setDataTypeId(dto.getDataTypeId());//数据类型ID

            if(dto.getSortTm()!=null) {
                vo.setSortTm(new Date(Long.valueOf(dto.getSortTm())));//立案时间
            }
            vo.setCaseType(dto.getCaseType());//案件类别
            vo.setBody(dto.getBody());//内容
            vo.setCourt(dto.getCourt());//法院名称
            vo.setAnYou(dto.getAnYou());//案由编码
            vo.setTitle(dto.getTitle());//标题
            vo.setJudge(dto.getJudge());//法官
            vo.setCaseNo(dto.getCaseNo());//案号
            vo.setJudgeResult(dto.getJudgeResult());//判决结果
            vo.setTrialProcedure(dto.getTrialProcedure());//审理程序
            vo.setCaseCause(dto.getCaseCause());//案由
            vo.setAnYouType(dto.getAnYouType());//案由编码类型
            vo.setYiJu(dto.getYiJu());//依据
            vo.setCourtRank(dto.getCourtRank());//法院等级
            vo.setCrtTm(dto.getCrtTm());//创建时间
            vo.setCrtUsrId(dto.getCrtUsrId());//创建人
            vo.setMdfTm(dto.getMdfTm());//修改时间
            vo.setMdfUsrId(dto.getMdfUsrId());//修改人
        }
        return vo;
    }

    /**
     * VO 转 DTO
     * @param vo YsejdEntryDVO
     * @return YsejdEntryDDTO
     */
    public static YsejdEntryDDTO baseToDTO(YsejdCpwsVO vo) {
        YsejdEntryDDTO dto = null;
        if (vo != null) {
            dto = new YsejdEntryDDTO();
            dto.setId(vo.getId());
            dto.setYsejdEnteyListId(vo.getYsejdEnteyListId());//企业信息列表ID
            dto.setEntryId(vo.getEntryId());//详情ID
            dto.setResponseCode(vo.getResponseCode());//返回响应代码
            dto.setResponseMsg(vo.getResponseMsg());//返回响应代码说明
            dto.setDataType(vo.getDataType());//数据类型
            dto.setDataTypeId(vo.getDataTypeId());//数据类型ID

            // dto.setSortTm(vo.getSortTm());//立案时间
            dto.setCaseType(vo.getCaseType());//案件类别
            dto.setBody(vo.getBody());//内容
            dto.setCourt(vo.getCourt());//法院名称
            dto.setAnYou(vo.getAnYou());//案由编码
            dto.setTitle(vo.getTitle());//标题
            dto.setJudge(vo.getJudge());//法官
            dto.setCaseNo(vo.getCaseNo());//案号
            dto.setJudgeResult(vo.getJudgeResult());//判决结果
            dto.setTrialProcedure(vo.getTrialProcedure());//审理程序
            dto.setCaseCause(vo.getCaseCause());//案由
            dto.setAnYouType(vo.getAnYouType());//案由编码类型
            dto.setYiJu(vo.getYiJu());//依据
            dto.setCourtRank(vo.getCourtRank());//法院等级



            dto.setCrtTm(vo.getCrtTm());//创建时间
            dto.setCrtUsrId(vo.getCrtUsrId());//创建人
            dto.setMdfTm(vo.getMdfTm());//修改时间
            dto.setMdfUsrId(vo.getMdfUsrId());//修改人
        }
        return dto;
    }

   /**
    * DTO 转  VO
    * @param dto YsejdEntryDDTO
    * @return YsejdEntryDVO
    */
   public static YsejdCpwsVO toVO(YsejdEntryDDTO dto) {
       YsejdCpwsVO  vo = baseToVO(dto);
       //设置自定义扩展属性
       return vo;
   }

   /**
    * VO 转 DTO
    * @param vo YsejdEntryDVO
    * @return YsejdEntryDDTO
    */
   public static YsejdEntryDDTO toDTO(YsejdCpwsVO vo) {
       YsejdEntryDDTO dto = baseToDTO(vo);
       //设置自定义扩展属性
       return dto;
   }

   /**
    * DTO集合 转 VO集合
    * @param list<YsejdEntryDDTO>
    * @return List<YsejdEntryDVO>
    */
   public static List<YsejdCpwsVO> toVOList(List<YsejdEntryDDTO> list) {
       List<YsejdCpwsVO>  voList = new ArrayList<YsejdCpwsVO>();
       if(CollectionUtils.isNotEmpty(list)){
           for (YsejdEntryDDTO dto : list) {
               voList.add(toVO(dto));
           }
       }
       return voList;
   }

   /**
    * VO集合 转 DTO集合
    * @param list List<YsejdEntryDVO>
    * @return List<YsejdEntryDDTO>
    */
   public static List<YsejdEntryDDTO> toDTOList(List<YsejdCpwsVO> list) {
       List<YsejdEntryDDTO>  dtoList = new ArrayList<YsejdEntryDDTO>();
       if(CollectionUtils.isNotEmpty(list)){
           for (YsejdCpwsVO vo : list) {
               dtoList.add(toDTO(vo));
           }
       }
       return dtoList;
   }
}
